static func draw(_self):
	var lines = [];
	var arcs = [];
	# draw_self
	var gear_fractionFactor = _self.gear_fractionFactor;
	var gear_radius = _self.gear_radius;
	var self_c = _self.self_c;
	var gear_speed = _self.gear_speed;
	
	var g_ff = gear_fractionFactor;
	var fflen = 40 * g_ff
	var line_w = 2
	while (abs(fflen) > gear_radius):
		fflen = fflen / 10
		line_w += 1
	lines.append_array([
		[Vector2(fflen, 0), Vector2( - fflen, 0), self_c, line_w],
		[Vector2(0, fflen), Vector2(0, -fflen), self_c, line_w]
	]);
	# draw
	#var angle = deg_to_rad(gear_speed)
	var c_spd = Color.AQUA;
	if (gear_speed < 0): c_spd = Color.CHOCOLATE;
	var startA = -90;
	var s = deg_to_rad(startA);
	var ee = gear_speed;
	var spd_w = 3;
	while (abs(ee) > 360):
		ee /= 10;
		spd_w += 1;
		if (spd_w >= gear_radius - 5):
			pass
			#ee = 
			
	var r = gear_radius - spd_w / 2.0 - 5;
	var e = deg_to_rad(ee + startA);
	arcs.append_array([
		[Vector2(0, 0), r, s, e, 36, c_spd, spd_w],
		# draw_edge
		[Vector2(0, 0), gear_radius, 0, 2 * PI, 36, Color(1, 1, 1, 0.2), 1]
	]);
	return {'lines': lines, 'arcs': arcs}
